let app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    url: '',
    phone: '',         // 输入的新手机号
    phoneValid: false, // 手机号是否验证通过
    errorMsg: ''       // 错误提示信息
  },

  /**
   * 处理手机号输入
   */
  handlePhoneInput(e) {
    const phone = e.detail.value
    const isValid = /^1[3-9]\d{9}$/.test(phone)
    
    this.setData({
      phone,
      phoneValid: isValid,
      // 输入时清除错误提示
      errorMsg: isValid ? '' : '请输入有效的11位手机号'
    })
  },

  /**
   * 表单提交 - 确认修改手机号
   */
  confirmModifyPhone(e) {
    // 通过表单获取输入值（与input的name属性对应）
    const { phone } = e.detail.value
    const user = wx.getStorageSync('user')
    
    // 检查用户是否登录
    if (!user || !user.id) {
      this.setData({
        errorMsg: '请先登录'
      })
      return
    }

    // 再次验证手机号（防止绕过前端验证）
    if (!/^1[3-9]\d{9}$/.test(phone)) {
      this.setData({
        errorMsg: '请输入有效的11位手机号'
      })
      return
    }

    // 显示加载中提示
    wx.showLoading({
      title: '修改中...',
    })

    // 调用服务器接口修改手机号
    wx.request({
      url: this.data.url + 'user/updatephone',
      method: 'POST',
      header: {
        'Content-Type': 'application/x-www-form-urlencoded' // 表单提交格式
      },
      data: {
        userId: user.id,
        newPhone: phone
      },
      success: (res) => {
        wx.hideLoading()
        
        if (res.data.code === 0) {
          wx.showToast({
            title: '手机号修改成功',
            icon: 'success'
          })
          // 1.5秒后返回上一页并刷新数据
          setTimeout(() => {
            wx.navigateBack({
              delta: 1
            })
          }, 1500)
        } else {
          this.setData({
            errorMsg: res.data.msg || '修改失败'
          })
        }
      },
      fail: () => {
        wx.hideLoading()
        this.setData({
          errorMsg: '网络错误，请重试'
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      url: app.globalData.url
    })
  }
})
